<!-- XHTML 1.0 Strict -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<meta name="author" content="Rachid Touzani" />
<meta name="keywords" content=" css, dropdowns, dropdown menu, drop-down, menu, navigation, nav, horizontal, vertical left-to-right, vertical right-to-left, horizontal linear, horizontal upwards, cross browser, internet explorer, ie, firefox, safari, opera, browser, lwis" />
<meta name="description" content="Clean, standards-friendly, modular framework for dropdown menus" />
<link href="../css/dropdown.vertical.css" media="screen" rel="stylesheet" type="text/css" />
<link href="../css/default.ultimate.css" media="screen" rel="stylesheet" type="text/css" />

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Demonstration of class EigenProblemSolver usage</title>
<link rel="stylesheet" type="text/css" href="../doxygen.css" />
<link rel="stylesheet" type="text/css" href="../tabs.css"  />
</head>

<body bgcolor="#FFFFFF" link="#FF0000" vlink="#FF00FF" alink="#FF00FF">
<p align="center"><a href="../index.html"><img src="../im/ofeli.gif" width="150" border="0"></a></p>

<center>
  <div id="cse" style="width: 60%;">Loading</div>
  <script src="http://www.google.com/jsapi" type="text/javascript"></script>
  <script type="text/javascript"> 
     google.load('search', '1', {language : 'en', style : google.loader.themes.SHINY});
     google.setOnLoadCallback(function() {
        var customSearchOptions = {};  var customSearchControl = new google.search.CustomSearchControl(
        '012396140824982761142:-qrywxcfi_o', customSearchOptions);
        customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
        customSearchControl.draw('cse');
     }, true);
   </script>
   <style type="text/css">
     .gsc-control-cse {
     font-family: Verdana, sans-serif;
     border-color: #DAE0E5;
     background-color: #DAE0E5;
   }
   .gsc-control-cse .gsc-table-result { font-family: Verdana, sans-serif; }
   input.gsc-input { border-color: #B6BEC5; }
   input.gsc-search-button {
     border-color: #B6BEC5;
     background-color: #D0D1D4;
   }
   .gsc-tabHeader.gsc-tabhInactive {
     border-color: #999999;
     background-color: #EEEEEE;
   }
   .gsc-tabHeader.gsc-tabhActive {
     border-color: #999999;
     background-color: #999999;
   }
   .gsc-tabsArea { border-color: #999999; }
   .gsc-webResult.gsc-result,
   .gsc-results .gsc-imageResult {
     border-color: #FFFFFF;
     background-color: #FFFFFF;
   }
   .gsc-webResult.gsc-result:hover,
   .gsc-imageResult:hover {
     border-color: #D2D6DC;
     background-color: #EDEDED;
   }
   .gsc-webResult.gsc-result.gsc-promotion:hover {
     border-color: #D2D6DC;
     background-color: #EDEDED;
   }
   .gs-webResult.gs-result a.gs-title:link,
   .gs-webResult.gs-result a.gs-title:link b,
   .gs-imageResult a.gs-title:link,
   .gs-imageResult a.gs-title:link b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:visited,
   .gs-webResult.gs-result a.gs-title:visited b,
   .gs-imageResult a.gs-title:visited,
   .gs-imageResult a.gs-title:visited b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:hover,
   .gs-webResult.gs-result a.gs-title:hover b,
   .gs-imageResult a.gs-title:hover,
   .gs-imageResult a.gs-title:hover b { color: #0568CD; }
   .gs-webResult.gs-result a.gs-title:active,
   .gs-webResult.gs-result a.gs-title:active b,
   .gs-imageResult a.gs-title:active,
   .gs-imageResult a.gs-title:active b { color: #0568CD; }
   .gsc-cursor-page { color: #0568CD; }
   a.gsc-trailing-more-results:link { color: #0568CD; }
   .gs-webResult .gs-snippet,
   .gs-imageResult .gs-snippet,
   .gs-fileFormatType { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl,
   .gs-imageResult div.gs-visibleUrl { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl-short { color: #5F6A73; }
   .gs-webResult div.gs-visibleUrl-short { display: none; }
   .gs-webResult div.gs-visibleUrl-long { display: block; }
   .gs-promotion div.gs-visibleUrl-short { display: none; }
   .gs-promotion div.gs-visibleUrl-long { display: block; }
   .gsc-cursor-box { border-color: #FFFFFF; }
   .gsc-results .gsc-cursor-box .gsc-cursor-page {
      border-color: #999999;
      background-color: #FFFFFF;
      color: #0568CD;
   }
   .gsc-results .gsc-cursor-box .gsc-cursor-current-page {
      border-color: #999999;
      background-color: #999999;
      color: #0568CD;
   }
   .gsc-webResult.gsc-result.gsc-promotion {
      border-color: #D2D6DC;
      background-color: #D0D1D4;
   }
   .gsc-completion-title { color: #0568CD; }
   .gsc-completion-snippet { color: #5F6A73; }
   .gs-promotion a.gs-title:link,
   .gs-promotion a.gs-title:link *,
   .gs-promotion .gs-snippet a:link { color: #0066CC; }
   .gs-promotion a.gs-title:visited,
   .gs-promotion a.gs-title:visited *,
   .gs-promotion .gs-snippet a:visited { color: #0066CC; }
   .gs-promotion a.gs-title:hover,
   .gs-promotion a.gs-title:hover *,
   .gs-promotion .gs-snippet a:hover { color: #0066CC; }
   .gs-promotion a.gs-title:active,
   .gs-promotion a.gs-title:active *,
   .gs-promotion .gs-snippet a:active { color: #0066CC; }
   .gs-promotion .gs-snippet,
   .gs-promotion .gs-title .gs-promotion-title-right,
   .gs-promotion .gs-title .gs-promotion-title-right *  { color: #333333; }
   .gs-promotion .gs-visibleUrl,
   .gs-promotion .gs-visibleUrl-short { color: #5F6A73; }
   </style>
</center>
</p>
&nbsp;

<div id="mainmenu">
<div class="text">

 <div class="tabs">
   <ul class="tablist">
   <li><a href="../index.html"><span>Home</span></a>
   <li><a href="../overview.html"><span>Overview</span></a>
   <li><a href="../html/index.html"><span>Class Documentation</span></a>
   <li><a href="../fformats.html"><span>File Formats</span></a>
   <li><a href="../tutorial.html"><span>Tutorial</span></a>
   <li class="current"><a href="../demos.html"><span>Demo Codes</span></a>
 </div>

 </div>
 </div>

&nbsp;
<p>
 <h2>Demonstration of class EigenProblemSolver usage:<br>
     Solution of the eigenvalue problem for the 2-D Laplace equation</h2>

<p><table border="2" cellpadding="2" cellspacing="0" >
<tr>
<td align="center" width="35"><a href="eigen_demo1.html"><img src="../im/backward.gif" border="0"></a></td>
<td align="center" width="35"><a href="../demos.html"><img src="../im/top.gif" border="0"></a></td>
<!--<td align="center" width="35"><a href="opt_demo1.html"><img src="../im/forward.gif" border="0"></a></td>-->
</tr>
</table></p>

<p>
<SPAN class=TEXT>
We present a program to compute eigenvalues and eigenvectors of the
Laplace equation with homogeneous Dirichlet boundary conditions,
discretized by the P<sub>1</sub> finite element method.
</SPAN>

<h2>The Code</h2>
<ul type=square>
<li><SPAN class=TEXT>We start, as usual, by including the main header
file of the library, and the header for the Laplace equation.
The program has, as argument the name of the project file, from which
we deduce the name of the mesh file and the number of sought eigenvalues
(variable <span class=TT>nb</span>). We also construct a <a href="../html/classOFELI_1_1Mesh.html">Mesh</a> instance.
<p><table bgcolor="#e0f8f7" border="1" frame=box rules=none width=700>
<tr><td>
<pre><font color="blue" size=3>#include "OFELI.h"
#include "Laplace.h"

using namespace OFELI;

int main(int argc, char *argv[])
{
   IPF data(argv[1]);
   Mesh ms(data.getMeshFile());
   int nb = data.getInteger("nb");
</font></pre>
</td></tr></table></p>

<li><SPAN class=TEXT> We construct an instance of class
<a href="../html/classOFELI_1_1Laplace2DT3.html">Laplace2DT3</a> using
the <a href="../html/classOFELI_1_1Mesh.html">Mesh</a> instance, and then construct an instance of class
<a href="../html/classOFELI_1_1EigenProblemSolver.html">EigenProblemSolver</a>
by using the <a href="../html/classLaplace2DT3.html">Laplace2DT3</a>
instance. Finally, we run the subspace method to extract the eigenvalues.
</span></p>

<p><table bgcolor="#e0f8f7" border="1" frame=box rules=none width=700>
<tr><td>
<pre><font color="blue" size=3>   Laplace2DT3 eq(ms);
   EigenProblemSolver e(eq);
   e.run(nb);
</font></pre>
</td></tr></table></p>

<li><SPAN class=TEXT>We end by printing the number of performed
iterations. Then we print the eigenvalues. The eigenvectors are
stored one by one in <span class=VAR>vtk</span> files. The names
of theses files are given in the project file, by using the tag
<span class=TT>plot_file</span>.
</span></p>

<p><table bgcolor="#e0f8f7" border="1" frame=box rules=none width=700>
<tr><td>
<pre><font color="blue" size=3>   cout &lt;&lt; "Nb. of iterations: " &lt;&lt; e.getNbIter() &lt;&lt; endl;
   Vect&lt;double&gt; v(ms);
   for (int i=1; i<=nb; i++) {
      cout &lt;&lt; "Eigenvalue #" &lt;&lt; i &lt;&lt; ": " &lt;&lt; e.getEigenValue(i) &lt;&lt; endl;
      e.getEigenVector(i,v);
      saveField(v,ms,data.getPlotFile(i),GMSH);
   }
   return 0;
}
</font></pre>
</td></tr></table>
</ul>

<h2>A Project File</h2>
<p><SPAN class=TEXT>We give here an example of a project file.

<p><table bgcolor="#e0f8f7" border="1" frame=box rules=none width=700>
<tr><td>
<pre><font color="blue" size=3>&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt;
&lt;OFELI_File&gt;
&lt;info&gt;
    &lt;title&gt;EigenMode Project&lt;/title&gt;
    &lt;date&gt;January 1, 2016&lt;/date&gt;
    &lt;author&gt;R. Touzani&lt;/author&gt;
&lt;/info&gt;
&lt;Project name="eigen"&gt;
   &lt;mesh_file value="test.m" /&gt;
   &lt;parameter label="nb" value="5" /&gt;
   &lt;plot_file value="test-1.pos" /&gt;
   &lt;plot_file value="test-2.pos" /&gt;
   &lt;plot_file value="test-3.pos" /&gt;
   &lt;plot_file value="test-4.pos" /&gt;
   &lt;plot_file value="test-5.pos" /&gt;
&lt;/Project&gt;
&lt;/OFELI_File&gt;
</font></pre>
</td></tr></table>


<p><table align="center" border="2" cellpadding="2" cellspacing="0" >
<tr>
<td align="center" width="35"><a href="eigen_demo1.html"><img src="../im/backward.gif" border="0"></a></td>
<td align="center" width="35"><a href="../demos.html"><img src="../im/top.gif" border="0"></a></td>
<!--<td align="center" width="35"><a href="opt_demo1.html"><img src="../im/forward.gif" border="0"></a></td>-->
</tr>
</table>

&nbsp;
<div id="foot_bar">
        Copyright &copy; 1998-2018 Rachid Touzani&nbsp;
</div>

</body>
</html>
